<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Display PostScript</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Display_PostScript"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Display_PostScript rootpage-Display_PostScript skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Display PostScript</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1248332772">
/* start https://en.wikipedia.org/ */
.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}
/* end https://en.wikipedia.org/ */
</style>
<p><b>Display PostScript</b> (or <b>DPS</b>) is a <a href="2D_computer_graphics" title="2D computer graphics">2D graphics engine</a> system for computers that uses the <a href="PostScript" title="PostScript">PostScript</a> (PS) imaging model and language to generate on-screen graphics. PS was originally developed for <a href="Computer_printing" class="mw-redirect" title="Computer printing">computer printing</a>, to which DPS adds a number of features intended to ease working with <a href="Bitmap" title="Bitmap">bitmapped</a> displays and improve performance of some common tasks.
</p><p>Early versions of PostScript display systems were developed at <a href="Adobe_Systems" class="mw-redirect" title="Adobe Systems">Adobe Systems</a>. During development of the <a href="NeXT" title="NeXT">NeXT</a> computers, NeXT and Adobe collaborated to produce the official DPS system, which was released in 1987. NeXT used DPS throughout its history, while versions from Adobe were popular on Unix workstations for a time during the 1980s and 1990s.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Design">Design</h2></div>
<p>The original PostScript was written for printing, with the model being that only one document could be printed at one time, and that the document was broken into logical sections approximating a page. For this reason, the underlying model of PS was based on a <a href="Stack_machine" title="Stack machine">stack machine</a> similar to the <a href="Forth_programming_language" class="mw-redirect" title="Forth programming language">Forth programming language</a>, which reduced the complexity of the code on the printer and the amount of memory needed to store individual graphics. The system would gather up instructions until the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">showpage</code> command was issued, at which time all the instructions received since the last <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">showpage</code> or the start of the session were performed and the memory used by those instructions could then be released.<sup id="cite_ref-FOOTNOTEAdobe1990325_1-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990325-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>In contrast, a display engine works in a very different environment. There is no analog of a <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">showpage</code> that will eventually allow queued instructions to be performed, generally any drawing is expected to take place immediately. Moreover, whereas a PS printer could only print one document at a time, in a modern computer with multiple display <a href="Window_(computing)" title="Window (computing)">windows</a>, all of the windows could be updating at the same times using different settings. This was addressed with the introduction of <i>multiple execution contexts</i>, each of which approximated the model seen on a printer; that is, each window effectively had its own PS context and instruction stack, and each window could then produce output with different settings, like whether or not the next line should be dashed or solid.The DPS system provided library calls to create the contexts, which could be completely independent or shared.<sup id="cite_ref-FOOTNOTEAdobe1990326_2-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990326-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Shared contexts were useful in windowing systems because they allowed all of the windows within an application, or even across multiple applications, to share settings and especially pre-defined procedures stored in the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">userdict</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">globaldict</code>. One particularly important use of the shared <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">globaldict</code> was to store system-wide fonts.<sup id="cite_ref-FOOTNOTEAdobe1990327_3-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990327-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>The font system itself also had to be modified. PS has a powerful system that produces high-quality fonts from outline descriptions including "hints" which improve quality at smaller sizes. These all rely on the output resolution being fairly high, around 300 bps or higher in most cases. For the much lower-resolution monitors, the results were not very good. DPS added a system to allow hand-drawn bitmaps to be cached in the dictionaries, which was used to provide fonts that could be <a href="Bit_blit" title="Bit blit">bit blitted</a> directly to the display.<sup id="cite_ref-FOOTNOTEAdobe1990339_4-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990339-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> After the widespread use of 32-bit color displays the need for this sort of solution has been reduced, as <a href="Anti-aliasing" title="Anti-aliasing">anti-aliasing</a> solves many of these issues. Likewise, DPS added <a href="Halftone" title="Halftone">halftone</a> phase support to ensure newly drawn objects had the same halftone as earlier objects,<sup id="cite_ref-FOOTNOTEAdobe1990337_5-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990337-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> but this too has been reduced in importance on modern systems.
</p><p>PS stored objects and code within the dictionaries using string identifiers. This made finding the definition expensive as the size of the collections grew, which was a side-effect of many of these new features. DPS addressed this by adding the ability to store objects in the dictionary using integers instead of strings. This "encoded system names" concept could greatly improve performance of various tasks like finding a system font or looking up a common routine like "draw title bar". These encoded names were stored on a per-context basis.<sup id="cite_ref-FOOTNOTEAdobe1990332–333_6-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990332–333-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>Other changes addressed the need for direct interactivity. This included the ability to perform <i>incremental updates</i> so that PS commands that produced output could be performed immediately.<sup id="cite_ref-FOOTNOTEAdobe1990335_7-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990335-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> There were also systems for performing <a href="Hit_detection" class="mw-redirect" title="Hit detection">hit detection</a>, so that one could see if a particular location hit any of the drawn objects. This was used, for instance, to test which objects in the view were being hit at the location of a mouse click.<sup id="cite_ref-FOOTNOTEAdobe1990336_8-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990336-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p><p>Finally, DPS added the concept of a <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">pswrap</code>, a <a href="C_(programming_language)" title="C (programming language)">C-language</a> function that took DPS commands in the form of strings and sent them to the DPS context to be output. This allowed, for instance, one to write a C-language function that produced a rectangle on the screen.<sup id="cite_ref-FOOTNOTEAdobe1990334_9-0" class="reference"><a href="#cite_note-FOOTNOTEAdobe1990334-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>DPS did not, however, add a windowing system. That was left to the implementation to provide, and DPS was meant to be used in conjunction with an existing windowing engine. This was often the <a href="X_Window_System" title="X Window System">X Window System</a>, and in this form Display PostScript was later adopted by companies such as <a href="IBM" title="IBM">IBM</a> and <a href="Silicon_Graphics" title="Silicon Graphics">SGI</a> for their workstations. Often the code needed to get from an X window to a DPS context was much more complicated than the entire rest of the DPS interface. This greatly limited the popularity of DPS when any alternative was available.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p><a href="NeXT" title="NeXT">NeXT</a> in September 1987 became the first company to license Display Postscript.<sup id="cite_ref-lach19880118_10-0" class="reference"><a href="#cite_note-lach19880118-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> The developers of <a href="NeXT" title="NeXT">NeXT</a> wrote a completely new windowing engine to take full advantage of NeXT's <a href="Object-oriented_operating_system" title="Object-oriented operating system">object-oriented operating system</a>. A number of commands were added to DPS to create the windows and to react to events, similar to but simpler than <a href="NeWS" title="NeWS">NeWS</a>. The single API made programming at higher levels much easier and made NeXT one of the few systems to extensively use DPS. The user-space windowing system library <a href="NeXTSTEP" title="NeXTSTEP">NeXTSTEP</a> used PostScript to draw items like titlebars and scrollers. This, in turn, made extensive use of <code>pswrap</code>s, which were in turn wrapped in objects and presented to the programmer in object form.
</p><p><a href="Digital_Equipment_Corporation" title="Digital Equipment Corporation">Digital Equipment Corporation</a> in early 1988 licensed Display PostScript for <a href="DECwindows" class="mw-redirect" title="DECwindows">DECwindows</a>. Adobe said that it hoped that <a href="IBM" title="IBM">IBM</a> and <a href="Microsoft" title="Microsoft">Microsoft</a>, for <a href="OS/2" title="OS/2">OS/2</a> <a href="Presentation_Manager" title="Presentation Manager">Presentation Manager</a>, and <a href="Apple_Computer" class="mw-redirect" title="Apple Computer">Apple Computer</a> would also use the technology.<sup id="cite_ref-lach19880118_10-1" class="reference"><a href="#cite_note-lach19880118-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p><p>In November 1993 Sun Microsystems shipped <a href="OpenWindows" title="OpenWindows">OpenWindows</a> 3.3, which dropped the support for <a href="NeWS" title="NeWS">NeWS</a> and its non-standard extensions to PostScript, replacing it with DPS.
</p>
<div class="mw-heading mw-heading2"><h2 id="Modern_derivatives">Modern derivatives</h2></div>
<p>After acquiring NeXT, Apple's <a href="MacOS" title="MacOS">Mac OS X</a> operating system uses a central window server (created entirely by Apple) that caches window graphics as bitmaps, instead of storing and executing PostScript code. A graphics library called <a href="Quartz_2D" title="Quartz 2D">Quartz 2D</a> provides PostScript-style imaging using the PDF rendering model (a subset, plus tweaks, of the PostScript model), but this is used by application frameworks—there is no PostScript present in the Mac OS X window server. Apple chose to use this model for a variety of reasons, including the avoidance of licensing fees for DPS and more efficient support of legacy <a href="Carbon_(API)" title="Carbon (API)">Carbon</a> and <a href="Classic_(Mac_OS_X)" class="mw-redirect" title="Classic (Mac OS X)">Classic</a> code; <a href="QuickDraw" title="QuickDraw">QuickDraw</a>-based applications use bitmapped drawing exclusively.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="NeWS" title="NeWS">NeWS</a>, a similar window system that used the PostScript graphic model, but with extensions for concurrency, events and OOP</li>
<li><a href="PostScript_Standard_Encoding" title="PostScript Standard Encoding">PostScript Standard Encoding</a> (PostScript character set)</li>
<li><a href="NeXT_character_set" title="NeXT character set">NeXT character set</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Citations">Citations</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-FOOTNOTEAdobe1990325-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990325_1-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 325.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990326-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990326_2-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 326.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990327-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990327_3-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 327.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990339-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990339_4-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 339.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990337-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990337_5-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 337.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990332–333-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990332–333_6-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, pp. 332–333.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990335-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990335_7-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 335.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990336-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990336_8-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 336.</span>
</li>
<li id="cite_note-FOOTNOTEAdobe1990334-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEAdobe1990334_9-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFAdobe1990">Adobe 1990</a>, p. 334.</span>
</li>
<li id="cite_note-lach19880118-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-lach19880118_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lach19880118_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFLach1988" class="citation magazine cs1">Lach, Eric (18 January 1988). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=Dz8EAAAAMBAJ&pg=PA5#v=onepage&q&f=false">"Adobe Urges Apple, IBM To use Display PostScript"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. Vol. 10, no. 3. p. 5<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-05-25</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading3"><h3 id="Bibliography">Bibliography</h3></div>
<ul><li><cite id="CITEREFAdobe1990" class="citation book cs1"><a rel="nofollow" class="external text" href="https://www.os2site.com/sw/dev/openwatcom/docs/postscript_level_2_reference_manual.pdf"><i>PostScript LanguageReference Manual, SECOND EDITION</i></a> <span class="cs1-format">(PDF)</span>. Abobe Systems. December 1990.</cite></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFAdobe_Systems_Incorporated1990" class="citation book cs1"><a href="Adobe_Systems_Incorporated" class="mw-redirect" title="Adobe Systems Incorporated">Adobe Systems Incorporated</a> (1990) [1985]. <i>PostScript Language Reference Manual</i> (2nd ed.). <a href="Addison-Wesley_Publishing_Company" class="mw-redirect" title="Addison-Wesley Publishing Company">Addison-Wesley Publishing Company</a>.</cite> (NB. This edition also contains a description of Display PostScript, which is no longer discussed in the third edition.)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://c2.com/cgi/wiki?DisplayPostscript">Description at C2 Wiki</a></li>
<li><a rel="nofollow" class="external text" href="http://www.nongnu.org/backbone/">GNU/BackBone</a></li>
<li><a rel="nofollow" class="external text" href="http://www.adobe.com/devnet/pdf/pdf_reference.html">The most recent PDF specification, version 1.7</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20060603154639/http://partners.adobe.com/public/developer/en/ps/psrefman.pdf">PostScript Language Reference, Second Edition</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080515120658/http://partners.adobe.com/public/developer/ps/sdk/index_archive.html#dps">Display PostScript reference documents</a></li>
<li><a rel="nofollow" class="external text" href="https://www.donhopkins.com/home/archive/NeWS/leffler.text.txt">Comparison between Display PostScript and NeWS</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="X_Window_System153" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="X_Window_System153" style="font-size:114%;margin:0 4em"><a href="X_Window_System" title="X Window System">X Window System</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="X_Window_System_protocols_and_architecture" title="X Window System protocols and architecture">Architecture</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><b><a href="X_Window_System_core_protocol" title="X Window System core protocol">Core protocol</a></b></li>
<li><a href="X_Window_selection" title="X Window selection">X Window selection</a></li>
<li><a href="X_Window_authorization" title="X Window authorization">X Window authorization</a></li>
<li><a href="X11_color_names" title="X11 color names">X11 color names</a></li>
<li><a href="X_Input_Method" title="X Input Method">X Input Method</a></li>
<li><a href="X_resources" title="X resources">X resources</a></li>
<li><a href="Wayland_(display_server_protocol)" class="mw-redirect" title="Wayland (display server protocol)">Wayland</a></li></ul>
</div></td><td class="noviewer navbox-image" rowspan="5" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Extensions</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="X_Image_Extension" title="X Image Extension">X Image Extension</a></li>
<li><a href="X_keyboard_extension" title="X keyboard extension">X keyboard extension</a></li>
<li><a href="RandR" class="mw-redirect" title="RandR">RandR</a></li>
<li><a href="X_Rendering_Extension" title="X Rendering Extension">X Rendering Extension</a></li>
<li><a href="Shape_extension" title="Shape extension">Shape extension</a></li>
<li><a href="MIT-SHM" title="MIT-SHM">Shared memory extension</a></li>
<li><a href="XDM_(display_manager)" title="XDM (display manager)">X Display Manager Control Protocol</a></li>
<li><a href="X_video_extension" title="X video extension">X video extension</a></li>
<li><a href="X-Video_Motion_Compensation" title="X-Video Motion Compensation">X-Video Motion Compensation</a></li>
<li><a href="AIGLX" title="AIGLX">AIGLX</a></li>
<li><a href="GLX" title="GLX">GLX</a></li>
<li><a href="Multi-Pointer_X" title="Multi-Pointer X">Multi-Pointer X</a></li>
<li><a href="Composite_Extension" title="Composite Extension">Composite Extension</a></li>
<li><a href="Xinerama" title="Xinerama">Xinerama</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components<br>and notable<br>implementations</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Display_server" class="mw-redirect" title="Display server">Display servers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><b><a href="X.Org_Server" title="X.Org Server">X.Org Server</a></b></li>
<li><a href="Cygwin/X" title="Cygwin/X">Cygwin/X</a></li>
<li><a href="X-Win32" title="X-Win32">X-Win32</a></li>
<li><a href="X386" title="X386">X386</a></li>
<li><a href="XFree86" title="XFree86">XFree86</a></li>
<li><a href="XDarwin" title="XDarwin">XDarwin</a></li>
<li><a href="Xming" title="Xming">Xming</a></li>
<li><a href="Xsgi" title="Xsgi">Xsgi</a></li>
<li><a href="Xsun" title="Xsun">Xsun</a></li>
<li><a href="Xgl" title="Xgl">Xgl</a></li>
<li><a href="Xephyr" title="Xephyr">Xephyr</a></li>
<li><a href="XQuartz" title="XQuartz">XQuartz</a></li>
<li><a href="XWayland" class="mw-redirect" title="XWayland">XWayland</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Client libraries</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xlib" title="Xlib">Xlib</a></li>
<li><a href="XCB" title="XCB">XCB</a></li>
<li><a href="X_Toolkit_Intrinsics" title="X Toolkit Intrinsics">X Toolkit Intrinsics</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="X_display_manager" title="X display manager">Display managers</a><br><a href="X_session_manager" title="X session manager">Session managers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="GNOME_Display_Manager" title="GNOME Display Manager">GDM</a></li>
<li><a href="KDE_Display_Manager" title="KDE Display Manager">KDM</a></li>
<li><a href="Simple_Desktop_Display_Manager" title="Simple Desktop Display Manager">SDDM</a></li>
<li><a href="XDM_(display_manager)" title="XDM (display manager)">XDM</a></li>
<li><a href="LightDM" title="LightDM">LightDM</a></li>
<li><a href="LXDE" title="LXDE">LXDM</a></li>
<li><a href="Entrance_(display_manager)" title="Entrance (display manager)">Entrance</a></li>
<li><a href="WINGs_Display_Manager" class="mw-redirect" title="WINGs Display Manager">WDM</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="X_window_manager" title="X window manager">Window managers</a><br><small>(<a href="Comparison_of_X_window_managers" title="Comparison of X window managers">comparison</a>)</small></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Compositing_window_manager" class="mw-redirect" title="Compositing window manager">Compositing</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Compiz" title="Compiz">Compiz</a></li>
<li><a href="KWin" title="KWin">KWin</a></li>
<li><a href="Metacity" title="Metacity">Metacity</a></li>
<li><a href="Mutter_(software)" title="Mutter (software)">Mutter</a></li>
<li><a href="Xfwm" class="mw-redirect" title="Xfwm">Xfwm</a></li>
<li><a href="Enlightenment_(software)" class="mw-redirect" title="Enlightenment (software)">Enlightenment</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Stacking_window_manager" title="Stacking window manager">Stacking</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="4Dwm" class="mw-redirect" title="4Dwm">4Dwm</a></li>
<li><a href="AfterStep" title="AfterStep">AfterStep</a></li>
<li><a href="Amiwm" title="Amiwm">amiwm</a></li>
<li><a href="Blackbox" title="Blackbox">Blackbox</a></li>
<li><a href="CTWM" title="CTWM">CTWM</a></li>
<li><a href="Cwm_(window_manager)" title="Cwm (window manager)">cwm</a></li>
<li><a href="Fluxbox" title="Fluxbox">Fluxbox</a></li>
<li><a href="FLWM" title="FLWM">FLWM</a></li>
<li><a href="FVWM" title="FVWM">FVWM</a></li>
<li><a href="IceWM" title="IceWM">IceWM</a></li>
<li><a href="Matchbox_(window_manager)" title="Matchbox (window manager)">Matchbox</a></li>
<li><a href="Motif_Window_Manager" title="Motif Window Manager">mwm</a></li>
<li><a href="Olwm" title="Olwm">olwm</a></li>
<li><a href="Openbox" title="Openbox">Openbox</a></li>
<li><a href="Qvwm" title="Qvwm">Qvwm</a></li>
<li><a href="Sawfish_(window_manager)" title="Sawfish (window manager)">Sawfish</a></li>
<li><a href="Swm" title="Swm">swm</a></li>
<li><a href="Tvtwm" title="Tvtwm">tvtwm</a></li>
<li><a href="Twm" title="Twm">twm</a></li>
<li><a href="Vtwm" title="Vtwm">vtwm</a></li>
<li><a href="WindowLab" title="WindowLab">WindowLab</a></li>
<li><a href="Window_Maker" title="Window Maker">Window Maker</a></li>
<li><a href="Wm2" title="Wm2">wm2</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Tiling_window_manager" title="Tiling window manager">Tiling</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Awesome_(window_manager)" title="Awesome (window manager)">awesome</a></li>
<li><a href="Dwm" title="Dwm">dwm</a></li>
<li><a href="I3_(window_manager)" title="I3 (window manager)">i3</a></li>
<li><a href="Ion_(window_manager)" title="Ion (window manager)">Ion</a></li>
<li><a href="Ratpoison" title="Ratpoison">ratpoison</a></li>
<li><a href="Wmii" class="mw-redirect" title="Wmii">wmii</a></li>
<li><a href="Xmonad" title="Xmonad">xmonad</a></li>
<li><a href="StumpWM" class="mw-redirect" title="StumpWM">StumpWM</a></li>
<li><a href="Larswm" title="Larswm">larswm</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Standards</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Inter-Client_Communication_Conventions_Manual" title="Inter-Client Communication Conventions Manual">ICCCM</a></li>
<li><a href="Extended_Window_Manager_Hints" class="mw-redirect" title="Extended Window Manager Hints">EWMH</a></li>
<li><a href="Direct_Save_Protocol" class="mw-redirect" title="Direct Save Protocol">XDS</a></li>
<li><a href="Freedesktop.org" title="Freedesktop.org">freedesktop.org</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Xcalc" class="mw-redirect" title="Xcalc">xcalc</a></li>
<li><a href="Xclock" class="mw-redirect" title="Xclock">xclock</a></li>
<li><a href="Xedit_(X11)" class="mw-redirect" title="Xedit (X11)">xedit</a></li>
<li><a href="Xload" class="mw-redirect" title="Xload">xload</a></li>
<li><a href="Xterm" title="Xterm">xterm</a></li>
<li><a href="Xeyes" class="mw-redirect" title="Xeyes">xeyes</a></li>
<li><a href="Comparison_of_X_Window_System_desktop_environments" title="Comparison of X Window System desktop environments">Desktop environments (comparison)</a></li></ul>
</div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-14" href="https://en.wikipedia.org/wiki/?title=Display_PostScript&oldid=1300440455">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>